package com.xnyzc.lhy.mis.entity.vehicle;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.Version;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 车辆事故表
 *
 * @author lhy@xnyzc.com
 * @since 2019-07-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "OaCVehicleAccident对象", description = "车辆事故表")
public class OaCVehicleAccident implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "ID")
    @TableId(value = "accident_id", type = IdType.INPUT)
    private Long accidentId;

    @ApiModelProperty(value = "车辆ID")
    private Long vehicleId;

    @ApiModelProperty(value = "事故地点")
    private String accidentAddress;

    @ApiModelProperty(value = "事故时间")
    private Date accidentTime;

    @ApiModelProperty(value = "事故描述")
    private String accidentDescription;

    @ApiModelProperty(value = "事故伤亡情况")
    private String accidentCasualties;

    @ApiModelProperty(value = "事故图片")
    private String accidentImages;

    @ApiModelProperty(value = "出险费用")
    private BigDecimal insuranceCost;

    @ApiModelProperty(value = "处理人userID")
    private Long userId;

    @ApiModelProperty(value = "用户类型（0：管理员、1：司机）")
    private Integer userType;

    @ApiModelProperty(value = "处理状态（0：待处理、1：已处理）")
    private Integer status;

    @ApiModelProperty(value = "我方车牌号")
    private String ownVehNo;

    @ApiModelProperty(value = "我方司机姓名")
    private String ownDriverName;

    @ApiModelProperty(value = "我方司机联系方式")
    private String ownDriverPhone;

    @ApiModelProperty(value = "对方车牌号")
    private String sideVehNo;

    @ApiModelProperty(value = "对方司机姓名")
    private String sideDriverName;

    @ApiModelProperty(value = "对方司机联系电话")
    private String sideDriverPhone;

    @ApiModelProperty(value = "处理方式")
    private String processingMethod;

    @ApiModelProperty(value = "责任认定书")
    private String responsibilityCertificate;

    @ApiModelProperty(value = "保险管理员")
    private String insuranceManager;

    @ApiModelProperty(value = "保险管理员手机号")
    private String insuranceManagerPhone;

    @ApiModelProperty(value = "完结时间")
    private Date endTime;

    @ApiModelProperty(value = "取车时间（维修取车时间）")
    private Date pickUpTime;

    @ApiModelProperty(value = "用户来源")
    private String tag;

    @ApiModelProperty(value = "扩展字段1")
    private String expand1;

    @ApiModelProperty(value = "扩展字段2")
    private String expand2;

    @ApiModelProperty(value = "扩展字段3")
    private String expand3;

    @ApiModelProperty(value = "版本号")
    @Version
    private Long version;

    @ApiModelProperty(value = "是否删除(0:否,1:是)")
    @TableLogic
    private Integer deleted;

    @ApiModelProperty(value = "创建人")
    private Long createUser;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "更新人")
    private Long updateUser;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    /**
     * 冗余字段(方便查询)
     */
    @ApiModelProperty(value = "车牌号")
    private String vehNo;
    @ApiModelProperty(value = "事件ID(根据事件类型判断ID)")
    private String handId;

    public static final String ACCIDENT_ID = "accident_id";

    public static final String VEHICLE_ID = "vehicle_id";

    public static final String ACCIDENT_ADDRESS = "accident_address";

    public static final String ACCIDENT_TIME = "accident_time";

    public static final String ACCIDENT_DESCRIPTION = "accident_description";

    public static final String ACCIDENT_CASUALTIES = "accident_casualties";

    public static final String ACCIDENT_IMAGES = "accident_images";

    public static final String INSURANCE_COST = "insurance_cost";

    public static final String USER_ID = "user_id";

    public static final String USER_TYPE = "user_type";

    public static final String STATUS = "status";

    public static final String OWN_VEH_NO = "own_veh_no";

    public static final String OWN_DRIVER_NAME = "own_driver_name";

    public static final String OWN_DRIVER_PHONE = "own_driver_phone";

    public static final String SIDE_VEH_NO = "side_veh_no";

    public static final String SIDE_DRIVER_NAME = "side_driver_name";

    public static final String SIDE_DRIVER_PHONE = "side_driver_phone";

    public static final String PROCESSING_METHOD = "processing_method";

    public static final String RESPONSIBILITY_CERTIFICATE = "responsibility_certificate";

    public static final String INSURANCE_MANAGER = "insurance_manager";

    public static final String INSURANCE_MANAGER_PHONE = "insurance_manager_phone";

    public static final String END_TIME = "end_time";

    public static final String PICK_UP_TIME = "pick_up_time";

    public static final String TAG = "tag";

    public static final String EXPAND1 = "expand1";

    public static final String EXPAND2 = "expand2";

    public static final String EXPAND3 = "expand3";

    public static final String VERSION = "version";

    public static final String DELETED = "deleted";

    public static final String CREATE_USER = "create_user";

    public static final String CREATE_TIME = "create_time";

    public static final String UPDATE_USER = "update_user";

    public static final String UPDATE_TIME = "update_time";

}
